﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace Cofe.Core.Logger
{
    public interface IEventListener<T> : IDisposable where T : EventArgs
    {
        CancellationToken CancellationToken { get; }
        void DispatchEvent(IEnumerable<IEventLog<T>> eventsRecorded);
    }


    public interface IEventListener : IEventListener<EventArgs>
    {        
    }

  
    /// <summary>
    /// Register IEventListener or IEventLogger
    /// </summary>
    public interface IEventListenerFactory : ICofeService
    {
        void RegisterEventListener(IEventHub eventHub);
    }
}
